using ArmyAnt.ProcessController;
using PlayMyLife.Present;

namespace PlayMyLife.Events {
    public enum PanelType {
        StartPanel,
        PreparationPanel,
        GameMainPanel,
    }

    public enum PanelLayer {
        Back,
        FullScreen,
        Panel,
        Popup,
        Float,
        Top
    }

    public class EventArgs_ShowPanel : IEventManager<DirectorEvent>.IEventArgs {
        public const DirectorEvent EVENT_ID = DirectorEvent.ShowPanel;

        public DirectorEvent EventId => EVENT_ID;

        public PanelType Panel { get; set; }
        public PanelLayer Layer { get; set; }

        public EventArgs_ShowPanel(PanelType panel, PanelLayer layer) {
            Panel = panel;
            Layer = layer;
        }
    }

    public class EventArgs_ShowPanel_WithDirectorReader : EventArgs_ShowPanel {
        public IOperaDataReader Director { get; private set; }

        public EventArgs_ShowPanel_WithDirectorReader(IOperaDataReader director) : base(PanelType.GameMainPanel, PanelLayer.FullScreen) {
            Director = director;
        }
    }
}
